#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
A股股票查询器使用示例
演示如何使用StockAnalyzer类进行各种查询
"""

from stock_analyzer import StockAnalyzer
import time

def example_concept_search():
    """示例：概念股查询"""
    print("=== 概念股查询示例 ===")
    analyzer = StockAnalyzer()
    
    # 查询新能源汽车概念股
    results = analyzer.filter_stocks(concept="新能源汽车")
    analyzer.display_results(results)

def example_price_range_search():
    """示例：股价范围查询"""
    print("\n=== 股价范围查询示例 ===")
    analyzer = StockAnalyzer()
    
    # 查询股价在10-30元之间的股票
    results = analyzer.filter_stocks(price_range=(10.0, 30.0))
    analyzer.display_results(results)

def example_market_value_search():
    """示例：市值范围查询"""
    print("\n=== 市值范围查询示例 ===")
    analyzer = StockAnalyzer()
    
    # 查询市值在100-500亿元之间的股票
    results = analyzer.filter_stocks(market_value_range=(100, 500))
    analyzer.display_results(results)

def example_comprehensive_search():
    """示例：综合条件查询"""
    print("\n=== 综合条件查询示例 ===")
    analyzer = StockAnalyzer()
    
    # 综合查询：人工智能概念股，股价20-100元，市值50-1000亿元
    results = analyzer.filter_stocks(
        concept="人工智能",
        price_range=(20.0, 100.0),
        market_value_range=(50, 1000)
    )
    analyzer.display_results(results)

def example_uptrend_search():
    """示例：走势向上的股票查询"""
    print("\n=== 走势向上股票查询示例 ===")
    print("注意：此查询可能需要较长时间...")
    analyzer = StockAnalyzer()
    
    # 查询市盈率为正且走势向上的股票（仅分析前10只以节省时间）
    try:
        all_stocks = analyzer.filter_stocks()
        if not all_stocks.empty:
            # 仅分析前10只股票作为示例
            sample_codes = all_stocks['代码'].head(10).tolist()
            print(f"示例：分析前10只股票的走势...")
            
            uptrend_stocks = []
            for code in sample_codes:
                if analyzer.get_stock_monthly_trend(code):
                    stock_info = all_stocks[all_stocks['代码'] == code]
                    uptrend_stocks.append(stock_info.iloc[0])
                time.sleep(0.5)  # 避免请求过快
            
            if uptrend_stocks:
                import pandas as pd
                result_df = pd.DataFrame(uptrend_stocks)
                analyzer.display_results(result_df)
            else:
                print("在样本中未找到符合条件的股票")
    except Exception as e:
        print(f"查询失败: {e}")

def show_available_concepts():
    """示例：显示可用概念股"""
    print("\n=== 可用概念股列表示例 ===")
    analyzer = StockAnalyzer()
    
    concepts = analyzer.get_available_concepts()
    if concepts:
        print(f"共有 {len(concepts)} 个概念股，显示前20个：")
        for i, concept in enumerate(concepts[:20], 1):
            print(f"{i:2d}. {concept}")
    else:
        print("无法获取概念股列表")

def main():
    """运行所有示例"""
    print("A股股票查询器使用示例")
    print("=" * 50)
    
    try:
        # 1. 概念股查询示例
        example_concept_search()
        
        # 2. 股价范围查询示例
        example_price_range_search()
        
        # 3. 市值范围查询示例
        example_market_value_search()
        
        # 4. 综合条件查询示例
        example_comprehensive_search()
        
        # 5. 显示可用概念股
        show_available_concepts()
        
        # 6. 走势分析示例（可选，耗时较长）
        user_input = input("\n是否运行走势分析示例？(y/n): ").strip().lower()
        if user_input == 'y':
            example_uptrend_search()
        
        print("\n所有示例运行完成！")
        
    except KeyboardInterrupt:
        print("\n用户中断程序")
    except Exception as e:
        print(f"运行示例时发生错误: {e}")

if __name__ == "__main__":
    main() 